Control system, support device, and storage medium

ABSTRACT

Provided is a control system which can support a user with respect to the designation of a data group to be collected. The control system ( 1 ) includes: first and second controllers ( 100, 200 ); a drive device ( 300 ) which has a plurality of safety functions for a motor ( 400 ); a data tracing module ( 154 ) which traces a state value for indicating an operation state of the motor ( 400 ); and a support device ( 500 ) which receives a setting of the data group to be collected including the state value. The support device ( 500 ) includes: a storage ( 510 ) which stores collection candidate information in which a data group of collection candidates is associated with a type of a safety function; and an output section ( 508 ) which outputs, as the data group to be collected, the data group of collection candidates associated with one selected safety function.

BACKGROUND Technical Field

The present invention relates to a control system and a support deviceand a support program used in the control system.

Related Art

In many manufacturing sites, safety systems have increasingly beenintroduced in order to safely use facilities and machines. The safetysystems are intended to provide safety functions in accordance withinternational standards and are configured with safety components suchas safety controllers, safety sensors, safety switches, and safetyrelays.

The safety systems are also required to provide safety functions todrive devices such as servo motors that drive facilities or machines.For example, Non-Patent Literature 1 defines safety functions to beprovided to variable speed electric drive systems.

More specifically, Non-Patent Literature 1 defines some safety functionsrelated to drive devices such as Safe Torque Off (STO), Safe Stop 1(SS1), Safe Stop 2 (SS2), Safe Operating Stop (SOS), and Safe BrakeControl (SBC).

As a function for checking whether or not specifications of safetyfunctions disclosed in Non-Patent Literature 1 are satisfied, there is adata tracing function. The data tracing function is a function ofmonitoring a state value (a speed, for example) related to operations ofa servo motor and outputting transition of the state value.

CITATION LIST Non-Patent Literature [Non-Patent Literature 1]

-   “IEC 61800-5-2:2016 Adjustable speed electrical power drive    systems-Part 5-2: Safety requirements-Functional”, International    electrotechnical Commission, 2016-04-18

SUMMARY Technical Problem

A user needs to designate a collection target data group beforeexecuting a data tracing function. At this time, a time and efforts areneeded if collection target data is designated one by one. Also, it isdifficult for a user who does not remember a collection target datagroup required to debug a target function to perform designation itselfof the collection target data group. Thus, it is desirable to reduceefforts and loads in thinking for designating the collection target datagroup.

The present disclosure was made to solve the aforementioned problem, andan objective thereof according to an aspect is to provide a controlsystem capable of assisting a user in relation to designation of acollection target data group. An objective according to another aspectis to provide a support device capable of assisting a user in relationto designation of a collection target data group. An objective accordingto another aspect is to provide a support program capable of assisting auser in relation to designation of a collection target data group.

Solution to Problem

In one example of the present disclosure, a control system includes: afirst controller; and a drive device that drives a motor in accordancewith a first command from the first controller. The drive device has aplurality of safety functions with respect to the motor. The controlsystem further includes: a second controller that transmits a secondcommand in accordance with a type of a safety function to be executed tothe drive device; a data tracing module for tracing a state valueindicating an operation state of the motor that changes in response tothe first command; and a support device for receiving setting of acollection target data group in the control system. The collectiontarget data group includes the state value indicating the operationstate of the motor. The support device includes a storage for storingcollection candidate information that associates data groups ofcollection candidates in the control system with types of the pluralityof safety functions, a function receiving section for receivingselection of one safety function from among the plurality of safetyfunctions, and an output section that outputs, as the collection targetdata group, a data group of collection candidates associated with theone safety function from among the plurality of data groups defined inthe collection candidate information.

According to the disclosure, a data group of collection candidates isoutput in a bulk matter in accordance with a selected safety function.It is thus not necessary for the user to designate collection targetdata one by one. As a result, efforts for designating the collectiontarget data group is reduced. Also, it is not necessary for the user tobe aware with a name of the collection target data, and a risk of anerror operation that accompanies the designation of collection targetdata is also reduced.

In one example of the present disclosure, each of the data groupsassociated with the types of the plurality of safety functions in thecollection candidate information includes safety parameters to bereferred to when the associated safety functions are executed.

According to the disclosure, the data group of collection candidates isoutput with the safety parameters included therein. In this manner, itis not necessary for the user to designate safety parameters ascollection target data.

In one example of the present disclosure, the support device acquiresthe safety parameters included in the collection target data group fromthe drive device, and acquires a result of tracing the state valueincluded in the collection target data group from the data tracingmodule.

According to the disclosure, the user can acquire the tracing result andthe safety parameters stored in different devices.

In one example of the present disclosure, the safety parameters includea lower limit value of the state value and an upper limit value of thestate value.

According to the disclosure, the lower limit value of the state valueand the upper limit value of the state value are output as collectiontarget data. In this manner, it is not necessary for the user todesignate the lower limit value of the state value and the upper limitvalue of the state value as collection target data.

In one example of the present disclosure, the safety parameters includea stop holding time starting from when the drive device receives thesecond command until driving of the motor is stopped.

According to the disclosure, the stop holding time is output ascollection target data. In this manner, it is not necessary for the userto designate the stop holding time as collection target data.

In one example of the present disclosure, the control system includes aplurality of the drive devices, the plurality of drive devices drivemutually different motors, and the support device further includes amotor receiving section for receiving selection of one motor from amongthe plurality of motors. The collection target data group output by theoutput section is determined on the basis of a combination of the onesafety function and the one motor.

According to the disclosure, the collection target data group inaccordance with the combination of the selection of the safety functionand the selection of the motor is automatically selected.

In one example of the present disclosure, tracing conditions for thestate value employed by the data tracing module are respectivelyassociated with the plurality of safety functions in advance. The outputsection further outputs the tracing condition associated with the onesafety function from among the plurality of tracing conditions.

According to the disclosure, the tracing condition that matches theselected safety function is automatically selected.

In one example of the present disclosure, there is provided a supportdevice connected to a control system. The control system includes afirst controller and a drive device that drives a motor in accordancewith a first command from the first controller. The drive device has aplurality of safety functions with respect to the motor. The controlsystem further includes a second controller that transmits a secondcommand in accordance with a type of a safety function to be executed tothe drive device and a data tracing module for tracing a state valueindicating an operation state of the motor that changes in accordancewith the first command. The support device includes a data receivingsection that receives setting of a collection target data group in thecontrol system. The collection target data group includes the statevalue. The support device includes: a storage for storing collectioncandidate information that associates data groups of collectioncandidates in the control system with types of the plurality of safetyfunctions; a function receiving section for receiving selection of onesafety function from among the plurality of safety functions; and anoutput section for outputting, as the collection target data group, adata group of collection candidates associated with the one safetyfunction from among the plurality of data groups defined in thecollection candidate information.

According to the disclosure, the data group of collection candidates isoutput in a bulk manner in accordance with the selected safety function.In this manner, it is not necessary for the user to designate thecollection target data one by one. As a result, efforts to designate thecollection target data group are reduced. Also, it is not necessary forthe user to be aware of a name of the collection target data, and a riskof an error operation that accompanies the designation of the collectiontarget data is also reduced.

In one example of the present disclosure, there is provided a supportprogram that is executed by a computer connected to a control system.The control system includes a first controller and a drive device thatdrives a motor in accordance with a first command from the firstcontroller. The drive device has a plurality of safety functions withrespect to the motor. The control system further includes a secondcontroller that transmits a second command in accordance with a safetyfunction to be executed to the drive device and a data tracing modulefor tracing a state value indicating an operation state of the motorthat changes in accordance with the first command. The support programcauses the computer to execute a step of receiving setting of acollection target data group in the control system. The collectiontarget data group includes the state value. The support program furthercauses the computer to execute the steps of: acquiring collectioncandidate information that associates data groups of collectioncandidates in the control system with types of the plurality of safetyfunctions; receiving selection of one safety function from among theplurality of safety functions; and outputting a data group of collectioncandidates associated with the one safety function from among theplurality of data groups defined in the collection candidate informationas the collection target data group.

According to the disclosure, the collection candidate data group isoutput in a bulk manner in accordance with the selected safety function.In this manner, it is not necessary for the user to designate thecollection target data one by one. As a result, efforts to designate thecollection target data group are reduced. Also, it is not necessary forthe user to be aware of a name of the collection target data, and a riskof an error operation that accompanies the designation of the collectiontarget data is also reduced.

Effects of Invention

According to the present invention, it is possible to reduce efforts todesignate a collection target data group.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic view illustrating a configuration example of acontrol system according to an embodiment.

FIG. 2 is a schematic view illustrating functions that the controlsystem has, according to the embodiment.

FIG. 3 is a schematic view illustrating a hardware configuration exampleof a standard controller configuring the control system according to theembodiment.

FIG. 4 is a schematic diagram illustrating a hardware configurationexample of a safety controller configuring the control system accordingto the embodiment,

FIG. 5 is a schematic view illustrating a hardware configuration exampleof a safety driver and a servo motor configuring the control systemaccording to the embodiment.

FIG. 6 is a schematic view illustrating a hardware configuration exampleof a support device configuring the control system according to theembodiment.

FIG. 7 is a schematic view illustrating an example of functionassignment in the control system according to the embodiment.

FIG. 8 is a sequence diagram illustrating an example of a processingprocedure related to safety functions performed by the safety driver ofthe control system according to the embodiment.

FIG. 9 is a diagram illustrating an example of motion safety functionsthat the control system provides, according to the embodiment.

FIG. 10 is a diagram illustrating an example of a parameter set forrealizing the motion safety functions stored in the safety driver of thecontrol system according to the embodiment.

FIG. 11 is a diagram for explaining a transmission form of acommunication frame in the control system according to the embodiment.

FIG. 12 is a diagram for explaining data transmission in the controlsystem according to the embodiment.

FIG. 13 is a schematic view illustrating an implementation example ofstandard control and safety control in the control system according tothe embodiment.

FIG. 14 is a diagram illustrating an example of a control flow forrealizing data tracing functions.

FIG. 15 is a diagram illustrating a data tracing screen that receivesvarious kinds of setting related to data tracing.

FIG. 16 is a diagram illustrating a bulk setting screen of a tracingtarget data group.

FIG. 17 is a conceptual diagram illustrating an overview of a method fordetermining the tracing target data group.

FIG. 18 is a diagram for explaining sampling processing for the tracingtarget data group.

FIG. 19 is a diagram illustrating a display region in a data tracingscreen.

FIG. 20 is a diagram illustrating a control system according to a firstmodification example.

FIG. 21 is a diagram illustrating a control system according to a secondmodification example.

FIG. 22 is a diagram illustrating a control system according to a thirdmodification example.

DESCRIPTION OF THE EMBODIMENTS

Hereinafter, each embodiment according to the present invention will bedescribed with reference to drawings. In the following description, thesame reference signs will be applied to the same parts and components.The names and the functions thereof will also be the same. Therefore,detailed description thereof will not be repeated. Note that theembodiments and the modification examples described below mayselectively be combined in an appropriate manner.

A. Application Example

First, an example of a situation to which the present invention isapplied will be described.

FIG. 1 is a schematic view illustrating a configuration example of acontrol system 1 according to an embodiment. The control system 1according to the embodiment provides safety functions for drive devicesdefined by the aforementioned Non-Patent Literature 1 in addition tosafety functions defined by IEC 61508 and the like, for example.

Referring to FIG. 1, the control system 1 mainly includes a standardcontroller 100 and a safety controller 200 and one or a plurality ofsafety drivers 300 connected to the standard controller 100 via a fieldnetwork 2. Each of the safety drivers 300 drives an electricallyconnected servo motor 400. Note that the motor is not limited to theservo motor 400 and an arbitrary type of motor can be employed.Moreover, the control system 1 includes a support device 500 connectedto the standard controller 100 via a network 3.

The standard controller 100 corresponds to the first controller andexecutes standard control on a control target including the servo motor400 in accordance with a standard control program created in advance.Typically, the standard controller 100 periodically calculates a commandfor an actuator such as the servo motor 400 through cyclic execution ofa control arithmetic operation in accordance with an input signal fromone or a plurality of sensors (not illustrated) or the like.

The safety controller 200 transmits a safety command (second command)related to operations of safety functions to the safety drivers 300.More specifically, the safety controller 200 independently performscyclic execution of monitoring and a control arithmetic operation forrealizing the safety functions for the control target independently fromthe standard controller 100. The safety controller 200 can receive aninput signal from an arbitrary safety device 240 and/or output a commandto the arbitrary safety device 240.

Each safety driver 300 drives the servo motor 400 by supplying electricpower to the servo motor 400 in accordance with a command (firstcommand) from the standard controller 100. The safety driver 300periodically calculates a rotation position, a rotation speed, arotation acceleration, a generated torque, and the like of the servomotor 400 on the basis of a feedback signal or the like from the servomotor 400.

Further, the safety driver 300 has safety functions related to drivingof the servo motor 400. More specifically, the safety driver 300provides state information necessary for the safety functions to thesafety controller 200 and adjusts or blocks electric power to besupplied to the servo motor 400 in accordance with required safetyfunctions.

The servo motor 400 has a motor that receives electric power from thesafety driver 300 and rotates and outputs, to the safety driver 300, adetection signal from an encoder coupled to a rotation shaft of themotor as a feedback signal.

The support device 500 is a computer configured in accordance with ageneral-purpose computer architecture in one example. The support device500 provides a development environment in which setting for each deviceincluded in the control system 1 and creation of a program executed byeach device can be performed in an integrated manner. In one example,the support device 500 provides an environment for developing a standardcontrol program for controlling the standard controller 100 and a safetyprogram for controlling the safety controller 200. The designed standardcontrol program and safety program are transferred to the standardcontroller 100 and the safety controller 200, respectively, via thefield network 2.

In the specification, the “device” is a general term of a device capableof communicating data with another device via an arbitrary network suchas the field network 2. In the control system 1 according to theembodiment, the “device” includes the standard controller 100, thesafety controller 200, and the safety drivers 300.

In the specification, the terms “standard control” and “safety control”will be used in a comparative manner. The “standard control” is ageneral term of processing for controlling a control target inaccordance with a predefined required specification. On the other hand,the “safety control” is a general term of processing for preventingpersons' safety from being threatened by facilities, machines, and thelike. The “safety control” is designed to satisfy requirements forrealizing safety functions defined by IEC 61508 and the like.

In the specification, safety functions unique to the drive device willcollectively be referred to as “motion safety functions”. Typically, the“functions” include the safety functions related to the drive devicedefined by Non-Patent Literature 1 described above. For example, the“functions” include control of monitoring the position and the speed ofa control axis and securing safety.

In the specification, the terms “state value” and “parameters” will beused in a comparative manner. The “state value” means data indicating atleast one of a state of the standard controller 100, a state of thesafety controller 200, a state of each safety driver 300, and a state ofthe servo motor 400. In other words, the “state value” means data, avalue of which changes in conjunction with the state of the standardcontroller 100, the state of the safety controller 200, the state ofeach safety driver 300, or the state of the servo motor 400. Typically,the “state value” corresponds to variables used in the standard controlprogram and the safety program and can include data indicating onevalue, data represented as a sequence, data represented as a structure,and the like. In contrast, the “parameters” mean data that does notchange in conjunction with the state of the standard controller 100, thestate of the safety controller 200, the state of each safety driver 300,and the state of the servo motor 400. The concept of the “parameters”can include constants, functions (linear functions, and quadraticfunctions, for example), and the like.

In the specification, “process data” is a general term of data used forat least either the standard control or the safety control.Specifically, the “process data” includes input information acquiredfrom the control target, output information output to the controltarget, internal information used for a control arithmetic operation ofeach device, and the like.

The input information includes an ON/OFF signal (digital input) detectedby a photoelectric sensor or the like, a physical signal (analog input)detected by a temperature sensor or the like, a pulse signal (pulseinput) generated by a pulse encoder or the like, and the like. Theoutput information includes ON/OFF (digital output) for driving a relayand the like, a speed command (analog output) for indicating a rotationspeed or the like of the servo motor, a displacement command (pulseoutput) for indicating the amount of movement or the like of a steppingmotor, and the like. The internal information includes state informationdetermined by a control arithmetic operation or the like using arbitraryprocess data as an input and the like.

Basically, the value of the “process data” is updated in every controlcycle or in every communication cycle. Here, updating means that thelatest value is reflected and can also include a case in which the valuedoes not change before and after the updating.

FIG. 2 is a schematic view illustrating functions that the controlsystem 1 has, according to the embodiment. Referring to FIG. 2, thestandard controller 100 includes a data tracing module 154 as afunctional module. The safety driver 300 includes a control device 311and a storage 320 as hardware configurations. The support device 500includes, as a hardware configuration, a processor 502, a storage 510,and an output section 508.

A command (first command) for realizing the standard control is providedfrom the standard controller 100 to the control device 311 of the safetydriver 300. The control device 311 controls each safety driver 300 inaccordance with the command from the standard controller 100.

Also, a command (second command) in accordance with a type of a motionsafety function to be executed is provided from the safety controller200 to the control device 311 of the safety driver 300. The safetydriver 300 has a plurality of motion safety functions 360 and executes amotion safety function 360 in accordance with the second commandreceived from the safety controller 200.

The data tracing module 154 monitors various state values related tooperations of the servo motor 400. Typically, the data tracing module154 monitors state values that change in accordance with a command(first command) from the standard controller 100. The state valuesinclude, for example, a rotation speed of the servo motor 400, arotation acceleration of the servo motor 400, a current position of atarget driven by the servo motor 400, a speed of the driven target,acceleration of the driven target, and the like.

The support device 500 receives setting of a collection target datagroup in the control system 1. More specifically, the storage 510 of thesupport device 500 stores collection candidate information 5118. In thecollection candidate information 5118, data groups of collectioncandidates in the control system 1 are associated with types of theplurality of motion safety functions 360. The data groups of collectioncandidates defined in the collection candidate information 5118 includesstate values indicating operation states of the servo motor 400, safetyparameters SP, which will be described later, and the like.

The output section 508 of the support device 500 includes a displaydevice such as a display. A screen that can be displayed on the outputsection 508 includes a setting region 543 that receives selection of themotion safety functions, a display region 545 that displays a collectiontarget data group, and the like. The setting region 543 receivesselection of one motion safety function from among the plurality ofmotion safety functions. The processor 502 of the standard controller100 specifies the collection candidate data group associated with theone motion safety function from among the plurality of data groups ofcollection candidates defined in the collection candidate information5118, on the basis of the selection of the motion safety function.Thereafter, the processor 502 displays the specified data group ofcollection candidates as the collection target data group in the displayregion 545.

In this manner, it is not necessary for the user to designate thecollection target data one by one by the data group of collectioncandidate being selected in accordance with the selected motion safetyfunction in a bulk manner. Also, it is not necessary for the user to beaware of a name of the collection target data, and a risk of an erroroperation that accompanies the designation of data is also reduced.

Note that although the data tracing module 154 is mounted in thestandard controller 100 in the example in FIG. 2, the data tracingmodule 154 is not necessarily mounted in the standard controller 100.The data tracing module 154 may be mounted in another unit (a tracingunit, for example) connected to the standard controller 100 as will bedescribed later. Alternatively, the data tracing module 154 may bemounted in a safety controller 200 or a server that is an externaldevice.

B. Configuration Example of Devices Included in Control System 1

Next, a configuration example of devices included in the control system1 will be described.

(b1: Standard Controller 100)

FIG. 3 is a schematic view illustrating a hardware configuration exampleof the standard controller 100 configuring the control system 1according to the embodiment. Referring to FIG. 3, the standardcontroller 100 includes a processor 102, a main memory 104, a storage110, an upper network controller 106, a field network controller 108, auniversal serial bus (USB) controller 120, a memory card interface 112,and a local bus controller 116. These components are connected to eachother via a processor bus 118.

The processor 102 corresponds to an arithmetic operation processing unitthat executes a control arithmetic operation related mainly to standardcontrol and is configured of a central processing unit (CPU), a graphicsprocessing unit (GPU), and the like. Specifically, the processor 102realizes the control arithmetic operation in accordance with a controltarget and various kinds of processing as will be described later byreading programs (a system program 1102 and a standard control program1104 in one example) stored in the storage 110 and developing andexecuting the programs in the main memory 104.

The main memory 104 is configured of a volatile storage device such as adynamic random access memory (DRAM) or a static random access memory(SRAM). The storage 110 is configured, for example, of a non-volatilestorage device such as a solid state drive (SSD) or a hard disk drive(HDD).

The storage 110 stores the standard control program 1104 created inaccordance with the control target in addition to the system program1102 for realizing basic functions. Further, the storage 110 storessetting information 1106 for setting variables and the like as will bedescribed later.

The upper network controller 106 exchanges data with an arbitraryinformation processing device via an upper network.

The field network controller 108 exchanges data with arbitrary devicesincluding the safety controller 200 and the safety driver 300 via thefield network 2. In the control system 1 illustrated in FIG. 3, thefield network controller 108 of the standard controller 100 functions asa communication master of the field network 2.

The USB controller 120 exchanges data with the support device 500 andthe like via USB connection.

The memory card interface 112 receives a memory card 114 that is anexample of a detachable recording medium. The memory card interface 112can write data in the memory card 114 and read various kinds of data (alog, trace data, and the like) from the memory card 114.

The local bus controller 116 exchanges data with an arbitrary unitconnected to the standard controller 100 via a local bus.

Although the configuration example in which necessary functions areprovided by the processor 102 executing the programs is illustrated inFIG. 3, some or all of these provided functions may be implemented usinga dedicated hardware circuit (an application specific integrated circuit(ASIC) or a field-programmable gate array (FPGA), for example).Alternatively, main parts of the standard controller 100 may be realizedusing hardware (an industrial PC based on a general-purpose PC, forexample) in accordance with a general-purpose architecture. In thiscase, virtualization techniques may be used to execute a plurality ofoperating systems (OSs) for different applications in parallel andexecute a necessary application on each OS. Further, a configuration inwhich functions such as a display device and a support device areintegrated in the standard controller 100 may be employed.

(b2: Safety Controller 200)

FIG. 4 is a schematic view illustrating a hardware configuration exampleof the safety controller 200 configuring the control system 1 accordingto the embodiment. Referring to FIG. 4, the safety controller 200includes a processor 202, a main memory 204, a storage 210, a fieldnetwork controller 208, a USB controller 220, and a safety local buscontroller 216. These components are connected via a processor bus 218.

The processor 202 corresponds to an arithmetic operation processing unitthat mainly executes a control arithmetic operation related to safetycontrol and is configured of a CPU, a GPU, and the like. Specifically,the processor 202 realizes a control arithmetic operation for providingnecessary safety functions and various kinds of processing as will bedescribed later by reading programs (a system program 2102 and a safetyprogram 2104 in one example) stored in the storage 210 and developingand executing the programs in the main memory 204.

The main memory 204 is configured of a volatile storage device such as aDRAM or an SRAM. The storage 210 is configured, for example, of anon-volatile storage device such as an SSD or an HDD.

The storage 210 stores the safety program 2104 created in accordancewith required safety functions in addition to the system program 2102for realizing basic functions. Further, the storage 210 stores settinginformation 2106 for setting variables and the like as will be describedlater.

The field network controller 208 exchanges data with arbitrary devicesincluding the standard controller 100 and the safety driver 300 via thefield network 2. In the control system 1 illustrated in FIG. 3, thefield network controller 208 of the safety controller 200 functions as acommunication slave of the field network 2.

The USB controller 220 exchanges data with an information processingdevice such as the support device 500 via USB connection.

The safety local bus controller 216 exchanges data with an arbitrarysafety unit connected to the safety controller 200 via a safety localbus. FIG. 4 illustrates a safety IO unit 230 as an example of the safetyunit.

The safety IO unit 230 exchanges input and output signals with thearbitrary safety device 240. More specifically, the safety IO unit 230receives input signals from the safety device 240 such as a safetysensor and a safety switch. Alternatively, the safety IO unit 230outputs commands to the safety device 240 such as a safety relay.

Although FIG. 4 illustrates a configuration example in which necessaryfunctions are provided by the processor 202 executing the programs, someor all of these provided functions may be implemented using a dedicatedhardware circuit (an ASIC or an FPGA, for example). Alternatively, mainparts of the safety controller 200 may be realized using hardware (anindustrial PC based on a general-purpose PC, for example) in accordancewith a general-purpose architecture.

(b3: Safety Driver 300 and Servo Motor 400)

FIG. 5 is a schematic view illustrating a hardware configuration exampleof the safety driver 300 and the servo motor 400 configuring the controlsystem 1 according to the embodiment. Referring to FIG. 5, the safetydriver 300 includes a field network controller 302, a control unit 310,a drive circuit 330, and a feedback reception circuit 332.

The field network controller 302 exchanges data with arbitrary devicesincluding the standard controller 100 and the safety controller 200 viathe field network 2. In the control system 1 illustrated in FIG. 5, thefield network controller 302 of the safety driver 300 functions as acommunication slave of the field network 2.

The control unit 310 executes necessary arithmetic operation processingfor causing the safety driver 300 to operate. In one example, thecontrol unit 310 includes a control device 311 that controls the safetydriver 300, a main memory 316, and a storage 320. The control device 311is configured of one or more processors. For example, the control device311 is configured of two processors 312 and 314.

The processor 312 corresponds to an arithmetic operation processing unitthat mainly executes a control arithmetic operation for driving theservo motor 400. The processor 314 corresponds to an arithmeticoperation processing unit that mainly executes a control arithmeticoperation for providing safety functions related to the servo motor 400.Both the processors 312 and 314 are configured of CPUs or the like.

The main memory 316 is configured of a volatile storage device such as aDRAM or an SRAM. The storage 320 is configured, for example, of anon-volatile storage device such as an SSD or an HDD.

The storage 320 stores a servo control program 3202 for realizing aservo control 350, a motion safety program 3204 for realizing a motionsafety function 360, setting information 3206 for setting variables andthe like released to other devices, and a plurality of safety parametersSP related to types of safety functions.

Although FIG. 5 illustrates, as an example, a configuration in which thetwo processors 312 and 314 execute control arithmetic operations formutually different purposes to enhance reliability, the configuration isnot limited thereto, and any configuration may be employed as long as itis possible to realize required safety functions. In a case in which aplurality of cores are included in a single processor, for example,control arithmetic operations corresponding to each of the processors312 and 314 may be executed. Also, although FIG. 5 illustrates aconfiguration example in which necessary functions are provided by theprocessors 312 and 314 executing the programs, some or all of theprovided functions may be implemented using a dedicated hardware circuit(an ASIC or an FPGA, for example).

The drive circuit 330 includes a converter circuit, an inverter circuit,and the like, generates electric power of a voltage, a current, and aphase as designated in accordance with a command from the control unit310, and supplies the electric power to the servo motor 400.

The feedback reception circuit 332 receives a feedback signal from theservo motor 400 and outputs the reception result to the control unit310.

The servo motor 400 typically includes a three-phase AC motor 402 and anencoder 404 attached to a rotation shaft of the three-phase AC motor402.

The three-phase AC motor 402 is an actuator that receives the electricpower supplied from the safety driver 300 and generates a rotationforce. Although FIG. 5 illustrates the three-phase AC motor as anexample, the motor is not limited thereto, and the motor may be a DCmotor, a single-phase AC motor, or a multi-phase AC motor. Further, anactuator that generates a drive force along a straight line such as alinear servo may also be employed.

The encoder 404 outputs feedback signals (typically, pulse signals ofthe number corresponding to a rotation frequency) in accordance with arotation frequency of the three-phase AC motor 402.

(b4: Support Device 500)

FIG. 6 is a schematic view illustrating a hardware configuration exampleof the support device 500 configuring the control system 1 according tothe embodiment. The support device 500 is realized using hardware (ageneral-purpose PC) in accordance with a general-purpose architecture inone example.

Referring to FIG. 6, the support device 500 includes a processor 502, amain memory 504, an input section 506, an output section 508, a storage510, an optical drive 512, and a USB controller 520. These componentsare connected via a processor bus 518.

The processor 502 is configured of a CPU, a GPU, or the like andrealizes various kinds of processing as will be described later byreading programs (an OS 5102 and a support program 5104 in one example)stored in the storage 510 and developing and executing the programs inthe main memory 504.

The main memory 504 is configured of a volatile storage device such as aDRAM or an SRAM. The storage 510 is configured, for example, of anon-volatile storage device such as an HDD or an SDD.

The storage 510 stores the support program 5104 for providing functionsof the support device 500 in addition to the OS 5102 for realizing basicfunctions. In other words, the support program 5104 realizes the supportdevice 500 according to the embodiment by being executed by a computerconnected to the control system 1.

Further, the storage 510 stores project data 5106 created by the user ina development environment provided through execution of the supportprogram 5104.

In the embodiment, the support device 500 provides a developmentenvironment in which setting for each device included in the controlsystem 1 and creation of programs executed by each device can beperformed in an integrated manner. The project data 5106 includes datacreated in such an integrated development environment. Typically, theproject data 5106 includes a standard control source program 5108,standard controller setting information 5110, a safety source program5112, safety controller setting information 5114, safety driver settinginformation 5116, collection candidate information 5118, axisinformation 5120, a collection target data group 5121, and a unitconversion table 5122.

The standard control source program 5108 is converted into an objectcode, is then transmitted to the standard controller 100, and is storedas the standard control program 1104 (see FIG. 3). Similarly, thestandard controller setting information 5110, the axis information 5120,the collection target data group 5121, and the unit conversion table5122 are also transmitted to the standard controller 100 and are storedas the setting information 1106 (see FIG. 3).

The safety source program 5112 is converted into an object code, is thentransmitted to the safety controller 200, and is stored as the safetyprogram 2104 (see FIG. 4). Similarly, the safety controller settinginformation 5114 is also transmitted to the safety controller 200 and isstored as the setting information 2106 (see FIG. 4).

The safety driver setting information 5116 is transmitted to the safetydriver 300 and is stored as the setting information 3206 (see FIG. 5).

The input section 506 is configured of a keyboard, a mouse, and the likeand receives user's operations. The output section 508 is configured ofa display, various indicators, a printer, and the like and outputsprocessing results and the like from the processor 502. The display maybe configured integrally with the support device 500 or may beexternally connected to the support device 500.

The USB controller 520 exchanges data with the standard controller 100and the like via USB connection.

The support device 500 includes an optical drive 512, and programsstored in a recording medium 514 (an optical recording medium such as adigital versatile disc (DVD), for example) that stores acomputer-readable program in a non-transitory manner is read from therecording medium 514 and is then installed in the storage 510 or thelike.

Although the support program 5104 and the like executed by the supportdevice 500 may be installed via the computer readable recording medium514, the support program 5104 and the like may be installed in such amanner that the support program 5104 and the like are downloaded from aserver device on the network. Also, the functions provided by thesupport device 500 according to the embodiment may be realized in such aform in which some of modules provided by the OSs is used.

Although FIG. 6 illustrates the configuration example in which necessaryfunctions of the support device 500 are provided by the processor 502executing the programs, some or all of the provided functions may beimplemented using a dedicated hardware circuit (an ASIC or an FPGA, forexample).

Note that the support device 500 may be detached from the standardcontroller 100 when the control system 1 is operating.

C. Function Assignment in Control System 1

Next, an example of function assignment in the control system 1 will bedescribed. FIG. 7 is a schematic view illustrating an example offunction assignment in the control system 1 according to the embodiment.

Referring to FIG. 7, the safety driver 300 executes the servo control350 in relation to the standard control 150 executed by the standardcontroller 100. The standard control 150 includes processing ofperiodically calculating a command for driving the servo motor 400 inaccordance with a user program set in advance for the control target.Also, the servo control 350 includes processing of performing control todrive the servo motor 400 in accordance with the command periodicallycalculated by the standard control 150 and of acquiring and outputting astate value indicating an operation state of the servo motor 400. Theprocessor 312 (see FIG. 5) of the safety driver 300 corresponds to theservo control 350.

On the other hand, the safety driver 300 provides the motion safetyfunction 360 in a manner corresponding to the safety function 250provided by the safety controller 200. The processor 314 (see FIG. 5) ofthe safety driver 300 corresponds to the motion safety function 360.

The safety function 250 activates a safety function designated inadvance if predefined conditions are satisfied, on the basis of a statevalue held by the standard control 150 executed by the standardcontroller 100, a state value indicated by a signal from the safetydevice 240, a state value held by the safety driver 300, and the like.

The processing of activating the safety function designated in advanceincludes, for example, an output of a safety command to the safetydriver 300, an output of a safety command (to disconnect a safety relayrelated to power supply to a specific device, for example) to the safetydevice 240, or the like.

The safety driver 300 responds to the safety command from the safetycontroller 200 and provides the designated motion safety function 360.In accordance with the type of the designated motion safety function360, processing of intervening control of the servo motor 400 providedby the servo control 350 and disconnecting power supply to the servomotor 400, processing of monitoring whether or not the state value forthe control of the servo motor 400 provided by the servo control 350falls within a predefined limited range, or the like is executed.

FIG. 8 is a sequence diagram illustrating a processing procedure relatedto safety functions performed by the safety driver 300 of the controlsystem 1 according to the embodiment. Referring to FIG. 8, the standardcontrol 150 of the standard controller 100 periodically calculates acommand and outputs the command to the safety driver 300 (servo control350) (Sequence SQ2). The servo control 350 of the safety driver 300drives the servo motor 400 in accordance with the command from thestandard control 150 (Sequence SQ4).

If a safety event from the safety device 240 (a safety sensor, forexample) occurs at a certain timing (Sequence SQ6), then the safetycontroller 200 outputs a safety command to the safety driver 300 (motionsafety function 360) (Sequence SQ8). In response to the safety command,the motion safety function 360 of the safety driver 300 activates thedesignated safety function (Sequence SQ10).

In response to the activation of the safety function, the standardcontrol 150 of the standard controller 100 calculates and outputs acommand in accordance with the activated safety function (SequenceSQ12). On the other hand, the safety driver 300 (motion safety function360) monitors whether or not an operation state of the servo motor 400falls within a predefined limited range. If it is determined that theoperation state of the servo motor 400 does not fall within thepredefined limited range, or if a predefined stop time is reached, thesafety driver 300 (motion safety function 360) disconnects power supplyto the servo motor 400 (Sequence SQ14).

In this manner, the safety driver 300 can drive the servo motor 400 inaccordance with the command from the standard controller 100 (standardcontrol 150) and realize the motion safety function of the safetycontroller 200 (safety function 250) in response to the command foractivating the safety function.

D. Motion Safety Function of Control System 1

Next, an example of the motion safety function provided by the controlsystem 1 will be described.

FIG. 9 is a diagram illustrating an example of the motion safetyfunction provided by the control system 1 according to the embodiment.(A) of FIG. 9 illustrates an example of a behavior of the servo motor400 corresponding to Safe Torque Off (STO) while (B) of FIG. 9illustrates an example of a behavior of the servo motor 400corresponding to Safe Stop 1 (SS1).

Referring to (A) of FIG. 9, if a safety command (STO) is provided at aclock time t1 in a state in which the servo motor 400 is operating at acertain rotation speed, then the safety driver 300 disconnects powersupply to the servo motor 400 and sets a torque generated in the servomotor 400 to zero. As a result, the servo motor 400 rotates with inertiaand then stops. Note that in a case in which the servo motor 400 isprovided with a brake, the servo motor 400 can also immediately stop.

Referring to (B) of FIG. 9, if a safety command (SS1) is provided at aclock time t1 in a state in which the servo motor 400 is operating at acertain rotation speed, then the safety driver 300 reduces the rotationspeed with a predefined acceleration. At this time, the safety driver300 may execute power collection (that is, regeneration) from the servomotor 400 or the like. Then, if the rotation speed of the servo motor400 reaches zero at a clock time t2, the safety driver 300 disconnectspower supply to the servo motor 400 and sets the torque generated in theservo motor 400 to zero. A state similar to that in the case of STO asillustrated in (A) of FIG. 9 is achieved at and after the clock time t2.

A safety function with which stopping can be achieved more safely isappropriately selected out of STO illustrated in (A) of FIG. 9 and SS1illustrated in (B) of FIG. 9 in accordance with properties and the likeof facilities mechanically connected to the servo motor 400.

Non-Patent Literature 1 described above defines not only the motionsafety functions illustrated in (A) of FIG. 9 and (B) of FIG. 9 but alsoa plurality of functions. In order to realize each motion safetyfunction, setting for defining a behavior of the servo motor 400 isneeded.

FIG. 10 is a diagram illustrating an example of a parameter set 390 forrealizing the motion safety functions stored in the safety driver 300 ofthe control system 1 according to the embodiment. Referring to FIG. 10,the parameter set 390 includes one or a plurality of setting values(safety parameters) corresponding to each of the motion safety functionsprovided by the safety driver 300.

For example, the setting values corresponding to the motion safetyfunctions can include a speed range, an acceleration range, a stoppingtime, and the like.

Typically, the user operates the support device 500 to determine abehavior among the motion safety functions in the safety driver 300, andthe parameter set 390 corresponding to the determined behavior istransferred to the safety driver 300. The safety driver 300 stores, inadvance, the parameter set 390 from the support device 500.

E. Data Communication in Control System 1

Next an example of data communication in the control system 1 will bedescribed.

FIG. 11 is a diagram for explaining a transmission form of acommunication frame in the control system 1 according to the embodiment.Referring to FIG. 11, process data communication is performed in thefield network 2 of the control system 1, and a communication frame 600is cyclically (at several to ten and several msec, for example) turnedamong devices using the standard controller 100 as a communicationmaster. The cycle at which the communication frame 600 is transmittedwill also be referred to as a process data communication cycle.

In the embodiment, EtherCAT (registered trademark) is employed as anexample of a protocol of the field network 2 via which such acommunication frame 600 is cyclically transmitted.

In the communication frame 600, a data region is allocated to eachdevice. If each device receives the communication frame 600 periodicallytransmitted, then each device writes a current value of data set inadvance in the data region allocated to the device itself in thereceived communication frame 600. Then, the device transmits thecommunication frame 600 after the current value is written therein to adevice in the next stage. The current value of the data written by eachdevice can be referred to by other devices.

The communication frame 600 turned once in the field network 2 and thenreturned to the communication master (standard controller 100) includesthe latest value collected by each device by each device writing thecurrent value of the preset data in the communication frame 600.

In the embodiment, such process data communication is used to formlogical connection 4 between the safety controller 200 and each safetydriver 300 (see FIG. 11). The logical connection 4 is used to exchangedata to realize the safety functions.

In the case in which EtherCAT is employed as the protocol of the fieldnetwork 2 as described above, it is possible to form the logicalconnection 4 using a protocol called FailSafe over EtherCAT (FSoE).

More specifically, a dedicated data region for storing a commandexchanged to form the logical connection 4 is allocated in thecommunication frame 600. The logical connection 4 is formed byexchanging commands among the devices using the dedicated data region.

FIG. 12 is a diagram for explaining data transmission in the controlsystem 1 according to the embodiment. Referring to FIG. 12, a dataregion 620 used for the logical connection 4 is defined in addition to adata region 610 used for process data communication in the communicationframe 600.

The data region 610 includes a data region 611 allocated to the standardcontroller 100, data regions 612, 613, and 614 allocated to the safetydrivers 300, and a data region 615 allocated to the safety controller200.

The data regions 612, 613, 614, and 615 include IN data regions 6121,6131, 6141, and 6151 for releasing data from each device to otherdevices and OUT data regions 6122, 6132, 6142, and 6152 for receivingcommands at each device.

The IN data regions 6121, 6131, 6141, and 6151 are data regions in whichdata to be released to other devices out of process data managed by eachdevice is written. Other devices can refer to written data by eachdevice writing necessary data in the IN data region allocated to thedevice itself in the communication frame 600. Typically, the standardcontroller 100 calculates a command for each device by executing acontrol arithmetic operation related to the standard control withreference to the data written by each device at each communicationcycle.

A command to be provided to each device is written in the OUT dataregions 6122, 6132, 6142, and 6152. Each device generates a signal to beoutput to the control target or updates an internal control state withreference to the data stored in the OUT data region allocated to thedevice itself in the communication frame 600. Basically, the standardcontroller 100 writes data in the OUT data region for each device.

Operations of writing data in and reading data from the data region 610used in the process data communication, which are performed by eachdevice, are set in advance in accordance with the data region allocatedto each device. Such operations for setting writing and reading of dataare performed by the user using the support device 500. Then, thesetting information is transmitted from the support device 500 to eachdevice.

On the other hand, the data region 620 used for the logical connection 4includes data regions 621, 622, and 623 allocated to the safety drivers300 and a data region 624 allocated to the safety controller 200. Eachdevice writes communication frames (hereinafter, also referred to as“safety communication frames 630”) relate to the logical connection 4 inand reading the communication frames from the data regions 621, 622,623, and 624. The standard controller 100 that is a communication masterswitches the stored safety communication frames 630 among the dataregions 621, 622, 623, and 624. The safety communication frame 630 canperform a type of peer-to-peer communication through such loopbackprocessing performed by the communication master.

FIG. 12 illustrates processing in a case in which the safetycommunication frame 630 is transmitted from the safety controller 200 tothe first safety driver 300 in one example. The safety communicationframe 630 as illustrated in FIG. 12 is transmitted in a case in whichthe safety controller 200 activates a specific motion safety functionfor a specific safety driver 300 or the like.

First, the safety controller 200 generates the safety communicationframe 630 to be transmitted to the safety driver 300 that is atransmission destination and writes the safety communication frame 630in the data region 624 in the communication frame 600. Thereafter, ifthe communication frame 600 with the safety communication frame 630written therein reaches the standard controller 100 that is thecommunication master, then the standard controller 100 copies, in thedata region 621, the safety communication frame 630 stored in the dataregion 624. If the communication frame 600 after the safetycommunication frame 630 is copied in the data region 621 reaches thesafety driver 300 that is the transmission destination, then the safetydriver 300 that is the transmission destination refers to the dataregion 621 and receives the safety communication frame 630.

Also, the safety communication frame 630 from the safety driver 300 tothe safety controller 200 is transmitted in a communication path that isopposite to that described above.

As described above, the logical connection 4 is formed using the dataregion 620 in the communication frame 600 in the control system 1according to the embodiment.

F. Implementation Example of Standard Control and Safety Control

As described above, the process data communication and the safetycommunication through the logical connection 4 can be performed in thecontrol system 1 according to the embodiment. Next, an implementationexample of the standard control and the safety control using each typeof communication will be described.

FIG. 13 is a schematic view illustrating an implementation example ofthe standard control and the safety control in the control system 1according to the embodiment. For convenience of explanation, FIG. 13illustrates an example of the control system 1 including one safetydriver 300 in addition to the standard controller 100 and the safetycontroller 200.

Referring to FIG. 13, the standard controller 100 includes, as mainfunctional configurations, a process data communication layer 170 and anIO management module 172. The safety controller 200 includes, as mainfunctional configurations, a process data communication layer 270, an IOmanagement module 272, a logical connection layer 276, and a safetyfunction state management engine 278. The safety driver 300 includes, asmain functional configurations, a process data communication layer 370,a logical connection layer 376, a motion safety function statemanagement engine 378, a servo control execution engine 352, and amotion safety function execution engine 362.

The process data communication layer 170, the process data communicationlayer 270, and the process data communication layer 370 are in charge oftransfer of the communication frame 600 on the field network 2. Each ofthe process data communication layer 170, the process data communicationlayer 270, and the process data communication layer 370 updates processdata 174, 274, and 374 of each device on the basis of data included inthe arriving communication frame 600. Also, each of the process datacommunication layer 170, the process data communication layer 270, andthe process data communication layer 370 writes process data designatedin advance in the data region that has been allocated to the device inadvance, regenerates the communication frame 600, and sends thecommunication frame 600 to the device in the next stage. At least a partof the process data is shared through the process data communication.

The logical connection layer 276 of the safety controller 200 and thelogical connection layer 376 of the safety driver 300 are in charge ofexchanging of the safety communication frames 630. In other words, thelogical connection layer 276 and the logical connection layer 376exchange commands and data using the safety communication frames 630included in the communication frame 600 in accordance with the protocol(FSoE in the embodiment) for forming the logical connection.

In the standard controller 100, the IO management module 172 updates theprocess data 174 through exchanging of signals with the control target.The standard control program 1104 executed by the standard controller100 executes a control arithmetic operation with reference to theprocess data 174 and updates the process data 174 with the result ofexecuting the control arithmetic operation.

In the safety controller 200, the IO management module 272 updates theprocess data 274 through exchanging of signals with the safety device240. Although the process data 274 is collectively expressed in FIG. 13,the process data (for the standard control) updated through the processdata communication and the process data (for the safety control) updatedthrough the exchanging of data with the safety device 240 may be managedin different levels.

The safety program 2104 executed by the safety controller 200 executes acontrol arithmetic operation with reference to the process data 274 andthe safety function state management engine 278, and updates the processdata 274 on the basis of the result of executing the control arithmeticoperation, or outputs an internal command to the safety function statemanagement engine 278.

The safety function state management engine 278 generates a command foractivating a specific motion safety function for the specific safetydriver 300 in accordance with the result of the control arithmeticoperation executed by the safety program 2104. The logical connectionlayer 276 exchanges necessary commands and information with the logicalconnection layer 376 of the target safety driver 300 using the safetycommunication frame 630 in response to the command from the safetyfunction state management engine 278.

In the safety driver 300, the servo control execution engine 352executes a control arithmetic operation related to the servo controlwith reference to the process data 374 and information regarding afeedback signal acquired via the feedback reception circuit 332. Theservo control execution engine 352 updates the process data 374 andoutputs an internal command to the drive circuit 330 on the basis of theresult of executing the control arithmetic operation. The drive circuit330 drives the servo motor 400 in accordance with the command from theservo control execution engine 352.

The motion safety function state management engine 378 corresponds to astate management unit that manages a state of the motion safetyfunctions in accordance with a safety command from the safety controller200. The motion safety function state management engine 378 outputs aninternal command to the motion safety function execution engine 362 inresponse to a command from the safety controller 200.

The motion safety function execution engine 362 executes the designatedmotion safety function.

The logical connection layer 376 exchanges necessary commands andinformation with the logical connection layer 276 of the safetycontroller 200 using the safety communication frame 630 in response tothe command from the motion safety function state management engine 378.

G. Data Tracing Function

Referring to FIG. 14 to FIG. 19, a data tracing function of the controlsystem 1 will be described. FIG. 14 is a diagram illustrating an exampleof a control flow for realizing the data tracing function. Hereinafter,processing in each step illustrated in FIG. 14 will be described inorder.

(G1. Step S10)

First, processing in Step S10 will be described with reference to FIG.14 to FIG. 17.

In Step S10 illustrated in FIG. 14, the user performs various kinds ofsetting related to data tracing on the support device 500. In oneexample, the user sets a group of data including tracing conditions andtracing targets for the support device 500.

FIG. 15 is a diagram illustrating a data tracing screen 530 thatreceives various kinds of setting related to data tracing. Asillustrated in FIG. 15, the data tracing screen 530 includes a tracingcondition setting region 531, a trace target data group setting region533, and a tracing result display region 535. The tracing conditionsetting region 531 includes setting regions 531A to 531E.

The setting region 531A receives selection of a tracing type. Selectabletracing types include, for example, single-time tracing and sequentialtracing. In a case in which the single-time tracing is selected, databefore and after a trigger condition set in the setting region 531E issatisfied is recorded. In a case in which the sequential tracing isselected, data that is a tracing target is continuously recordedregardless of the trigger condition set in the setting region 531E.

The setting region 531B receives setting of a sampling interval duringdata tracing. The sampling interval is set by designating a task ordesignating a time, for example. In a case in which a task isdesignated, an execution cycle of the designated task is set as thesampling cycle. In a case in which a time is designated, the designatedtime is set as the sampling cycle.

The setting region 531C receives setting of an upper limit value of thenumber of times sampling is performed per data. More specifically, thestandard controller 100 successively writes data that is a tracingtarget in a predetermined storage region, and in a case in which thenumber of times sampling is performed reaches the set upper limit value,the standard controller 100 overwrites the oldest data with new data inorder.

The setting region 531D receives setting of a data saving ratio beforeand after the trigger condition set in the setting region 531E issatisfied. More specifically, the standard controller 100 continues totrace data until data of the number of times sampling is performedcorresponding to the set saving ratio is collected after the triggercondition is satisfied.

The setting region 531E receives setting of the trigger condition. Thesetting region 531E receives, for example, designation of a variablename that is a trigger target, a conditional expression (an inequality,an equation, or the like) for the variable, and the like. In a case inwhich the designated variable satisfies the designated conditionalexpression, the trigger condition is satisfied. In one example, risingor the like of a variable (“SS1”, for example) related to a safetyfunction is set as the trigger condition. If the trigger condition issatisfied, then monitoring of a sampling end condition is started. Thesampling end condition depends on the number of times sampling isperformed set in the setting region 531C and the saving ratio set in thesetting region 531D. In a case of an example in which the number oftimes sampling is performed is set to 10,000 times and the saving ratiois set to 50%, the standard controller 100 performs the sampling 5,000times (=10,000 times×0.5) after the trigger condition is satisfied andthen stops the data tracing. In this manner, the data of samplingperformed 5,000 times before the trigger condition is satisfied and dataof sampling performed 5,000 times after the trigger condition issatisfied remain as a tracing result.

The setting region 533 receives setting of a tracing target data group.The setting region 533 includes a data list 533A in which the tracingtarget data group is displayed, an addition button B1, a deletion buttonB2, and a bulk addition button B3.

If the user presses the addition button B1, one row of a data settingsection is added to the data list 533A. The user can input a variablename or the like of the tracing target data in the added settingsection.

If the user presses the deletion button B2 in a state in which any ofsetting sections in the data list 533A is selected, the user can deletethe selected setting section from the data list 533A.

If the user presses the bulk addition button B3, then support device 500opens a bulk setting screen of the tracing target data group in a windowdifferent from the data tracing screen 530. FIG. 16 is a diagramillustrating a bulk setting screen 540 for a tracing target data group.

The bulk setting screen 540 includes a setting region 542 (motorreceiving section) that receives selection of an axis that is a tracingtarget, a setting region 543 (function receiving section) that receivesselection of a safety function, and a display region 545 that displays atracing target data group. Here, the “axis” means an axis that is atarget driven by the servo motor 400. The servo motor 400 and the axishave a one-to-one correspondence, and selecting the axis that is atracing target has the same meaning as selecting of the servo motor 400that is a tracing target. The support device 500 determines candidatesof tracing target data group on the basis of the axis selected in thesetting region 542 and the safety function selected in the settingregion 543.

Hereinafter, a method for determining a tracing target data group willbe described. FIG. 17 is a conceptual diagram illustrating an overviewof the method for determining a tracing target data group.

As illustrated in FIG. 17, the support device 500 includes, as hardwareconfigurations, a processor 502 and a storage 510. The processor 502includes, as a functional configuration, a determination module 550. Thestorage 510 includes collection candidate information 5118 and axisinformation 5120.

In the collection candidate information 5118, a data group of collectioncandidates in the control system 1 is associated with types of safetyfunctions of the safety driver 300. The safety functions defined by thecollection candidate information 5118 include, for example, Safe TorqueOff (STO), Safe Stop 1 (SS1), Safe Stop 2 (SS2), Safe Operating Stop(SOS), Safe Brake Control (SBC), and the like.

Each data group of the collection candidates defined by the collectioncandidate information 5118 includes variables to be referred to when thesafety functions are executed. In one example, variable associated withthe safety function “SS1” include a user variable “SS1” indicatingwhether or not the safety function “SS1” has been activated, a systemvariable “Act.Vel” indicating the speed of the servo motor 400, a systemvariable “Drvstatus.ServoOn” indicating whether or not the servo motor400 is in an electricity distributed state, and the like.

Also, each data group of the collection candidates defined by thecollection candidate information 5118 includes safety parametersreferred to when the safety functions are executed. In one example, thesafety parameters associated with the safety function “SS1” include“N_Zero_SS1”, “−N_Zero_SS1”, “T_L_SS1”, and “T_SS1”.

“N_Zero_SS1” indicates an upper limit value of the state value of theservo motor 400. “−N_Zero_SS1” indicates a lower limit value of thestate value of the servo motor 400.

“T_L_SS1” indicates a stop holding period until driving of the servomotor 400 is forcibly stopped after the state value of the safety driver300 becomes equal to the upper limit value “N_Zero_SS1”. In other words,the state value of the servo motor 400 is required to fall within therange of the upper limit value “N_Zero_SS1” and the lower limit value“−N_Zero_SS1” within the stop holding period “T_L_SS1” in order tosatisfy the specification of the safety function “SS1”.

“T_SS1” indicates a stop holding period until driving of the servo motor400 is forcibly stopped after execution of the safety function “SS1” isstarted. In other words, the state value of the servo motor 400 isrequired to fall within the range of the upper limit value “N_Zero_SS1”and the lower limit value “−N_Zero_SS1” within the stop holding period“T_SS1” in order to satisfy the specification of the safety function“SS1”.

The axis information 5120 includes axis setting set for the supportdevice 500. More specifically, the user sets an axis that is a drivetarget for each servo motor 400 in advance in or before designing of thestandard control program 1104. The support device 500 generates astructure corresponding to the set axis as a system variable on thebasis of the setting. The user can also describe a program for each axisusing the generated structure. The axis information 5120 defines eachsystem variable (structure) generated in the setting of the axis.

The determination module 550 determines a collection target data groupon the basis of a combination of the axis selected in the setting region542 (see FIG. 16) and the safety function selected in the setting region543 (see FIG. 16). As illustrated in FIG. 17, it is assumed that“MC_Axis000” has been selected in axis selection and “SS1” has beenselected in function selection. In this case, the determination module550 specifies a data group of collection candidates corresponding to thesafety function “SS1” with reference to the collection candidateinformation 5118. The determination module 550 includes the uservariable “SS1” and the safety parameters “N_Zero_SS1”, “−N_Zero_SS1”,and “T_SS1” in the specified data group with no change in the collectiontarget data group 5121. On the other hand, the determination module 550adds a structure variable name “MC_Axis000” to the system variables“Act.Vel” and “Drvstatus.ServoOn” related to the axis in the specifieddata group and includes the system variables “MC_Axis000.Act.Vel” and“MC_Axis000.Drvstatus.ServoOn” in the collection target data group 5121.

Referring again to FIG. 16, the collection target data group 5121determined by the determination module 550 is displayed in the displayregion 545 on the bulk setting screen 540. If the user presses an OKbutton B10, the collection target data group 5121 displayed in thedisplay region 545 is reflected to the setting region 533 on the datatracing screen 530. Also, in a case in which the OK button B10 ispressed in a state in which a check box 544 is checked, the tracingcondition is automatically reflected to the setting region 531 on thedata tracing screen 530. More specifically, different tracing conditionsare associated with the type of the safety function in advance, and thetracing conditions corresponding to the selected type of safety functionare reflected to the setting region 531 on the data tracing screen 530.For example, it is assumed that the saving ratio “100%” and “falling” ofthe variable “SS1” are associated as tracing conditions with the safetyfunction “SS1”. If the safety function “SS1” is selected in this case,then “100%” is automatically set in the setting region 531D, and“falling” of the variable “SS1” is automatically set in the settingregion 531E.

On the other hand, if the user presses a cancellation button B11, thedetails set on the bulk setting screen 540 are not reflected to thesetting region 533 on the data tracing screen 530, and the bulk settingscreen 540 is then closed.

(G2. Step S20)

Referring again to FIG. 14, processing in Step S20 will be described.The processing in Step S20 includes processing in Steps S22, S24, andS26.

It is assumed that in Step S22, the user performs a tracing executionoperation on the support device 500.

In Step S24, the support device 500 extracts variables from theaforementioned collection target data group set in the setting region533 on the data tracing screen 530.

In Step S26, the support device 500 outputs, to the standard controller100, a tracing execution order assuming the extracted variables ascollection targets. The tracing execution order includes theaforementioned information set in the setting region 531 on the datatracing screen 530.

(G3. Step S30)

Subsequently, processing in Step S30 will be described with reference toFIG. 14.

In Step S30, the standard controller 100 starts sampling processing onthe tracing target data group on the basis of reception of the tracingexecution order from the support device 500.

FIG. 18 is a diagram for explaining the sampling processing of the tracetarget data group. Referring to FIG. 18, the processor 102 of thestandard controller 100 includes, as functional modules, a controlmodule 152 and a data tracing module 154.

The control module 152 outputs a command to the safety driver 300 inevery cycle defined in advance in accordance with the standard controlprogram 1104. The safety driver 300 controls the servo motor 400 inaccordance with the command from the standard controller 100.

The data tracing module 154 samples the tracing target data group inaccordance with a tracing condition 1108 set in the aforementionedsetting region 531 on the data tracing screen 530. More specifically,the data tracing module 154 receives the tracing target data group fromthe safety driver 300 in every predefined cycle, associates the datagroup with clock time information, and then successively writes the datagroup in the storage region 104A. The storage region 104A is a volatilestorage region inside the standard controller 100. The storage region104A is secured inside the main memory 104 (see FIG. 3), for example. Ina case in which the number of times sampling of the tracing target datagroup is performed reaches a set upper limit value, the data tracingmodule 154 overwrites the oldest data group from among data groupsstored in the storage region 104A with new data group in order.

(G4. Step S40)

Referring again to FIG. 14, processing in Step S40 will be described.The processing in Step S40 includes processing in Steps S42, S44, S46,and S48.

In Step S42, the user performs an input (hereinafter, also referred toas a “trigger input”) for satisfying the aforementioned triggercondition set in the setting region 531E on the data tracing screen 530on the safety device 240. Note that the user may perform the input forsatisfying the trigger condition on the support device 500 instead ofthe safety device 240. In this case, the user can cause the triggercondition to be satisfied by changing the value of the variable relatedto the trigger condition on the support device 500.

In Step S44, the safety device 240 outputs the trigger input in Step S42to the safety IO unit 230.

In Step S46, the safety IO unit 230 outputs a signal in accordance withthe trigger input received in Step S44 to the safety controller 200.

In Step S48, the safety controller 200 activates the safety function inaccordance with the signal received in Step S46. The activation isrealized by rewriting the variable indicating ON/OFF of the safetyfunction. In the example in Step S48, the safety function “SS1” isactivated by setting the variable “SS1” from ON to OFF.

(G5. Step S50)

Subsequently, processing in Step S50 will be described with reference toFIG. 14.

It is assumed that falling of the variable “SS1” has been set as atrigger condition in aforementioned the setting region 531E on the datatracing screen 530. In this case, the standard controller 100 executesprocessing of saving the tracing target data group on the basis of thechange in variable “SS1” from ON to OFF in Step S50.

Referring to FIG. 18, the saving processing in Step S50 will bedescribed. The data tracing module 154 acquires the aforementioned upperlimit value of the number of times sampling is performed set in thesetting region 531C on the data tracing screen 530 and the saving ratioset in the setting region 531D and calculates the remaining number oftimes sampling is performed corresponding to the saving ratio of thenumber of times sampling is performed. In an example of a case in whichthe saving ratio is set to 50%, and the upper limit value of the numberof times sampling is performed is set to 10,000 times, the standardcontroller 100 sets the remaining number of times sampling is performedto 5,000 times (=10,000 times×0.5). The data tracing module 154continues to perform the remaining sampling 5,000 times after thetrigger condition is satisfied and then stops the sampling. In thismanner, data of the sampling performed 5,000 times before the triggercondition is satisfied and data of the sampling performed 5,000 timesafter the trigger condition is satisfied remain in the storage region104A.

Thereafter, the data tracing module 154 copies the data group saved inthe volatile storage region 104A to the non-volatile storage region114A. In this manner, the tracing result DT is saved in the non-volatilestorage region 114A. The storage region 114A may be secured inside thestorage 110 of the standard controller 100 or may be secured inside theexternal memory card 114.

(G6. Step S60)

Referring again to FIG. 14, processing in Step S60 will be described.The processing in Step S60 includes processing in Steps S61 to S67.

In Step S61, the support device 500 transmits a request for acquiringthe tracing result DT to the standard controller 100.

In Step S62, the standard controller 100 transmits the tracing result DTto the support device 500 on the basis of reception of the request foracquisition.

In Step S63, the support device 500 determines a display target timerange on the basis of the acquired tracing result DT. In one example,the support device 500 determines, as a display target time range, fromthe oldest time information to the latest time information in timeinformation included in the tracing result DT.

In Step S64 the support device 500 extracts safety parameters SP in theaforementioned collection target data group set in the setting region533 on the data tracing screen 530.

In Step S65, the support device 500 outputs a request for acquiring theextracted safety parameters to the safety driver 300 via the standardcontroller 100.

In Step S66, the safety driver 300 transmits the safety parameters SPcorresponding to the received request for acquisition to the supportdevice 500.

Note that in a case in which the safety parameters that are targets ofacquisition are cached in the support device 500 (in the aforementionedproject data 5106, for example), the communication in Steps S65 and S66are not necessarily performed. In this case, the support device 500 usesthe cached safety parameters without performing communication with thesafety driver 300 in Steps S65 and S66.

In Step S67, the support device 500 displays the tracing result DTreceived in Step S62 and the safety parameters SP received in Step S66as a result of executing the data tracing. In this manner, the supportdevice 500 acquires the safety parameters SP included in the collectiontarget data group from the safety driver 300 and acquires the statevalue tracing result DT included in the collection target data groupfrom the data tracing module 154 of the standard controller 100.

Referring to FIG. 19 the display processing in Step S67 will bedescribed in detail. FIG. 19 is a diagram illustrating the displayregion 535 on the data tracing screen 530 illustrated in FIG. 15.

As illustrated in FIG. 19, the support device 500 displays the tracingresult DT on a graph in which the horizontal axis represents a timewhile the vertical axis represents how large the state value of thesafety driver 300 is and also displays the safety parameters SP on thegraph. Note that although the horizontal axis of the graph represents atime and the vertical axis of the graph represents how large the statevalue is in the example in FIG. 19, the horizontal axis of the graph mayrepresent how large the state value is, and the vertical axis of thegraph may represent the time.

In the example in FIG. 19, transition of the variable “SS1”, transitionof the variable “MC_Axis000.Act.Vel”, and transition of the variable“MC_Axis000.Drvstatus.ServoOn” are displayed as the tracing result DT.Also, “N_Zero_SS1”, “−N_Zero_SS1”, “T_SS1”, and “T_L_SS1” are displayedas the safety parameters SP.

The safety parameter “N_Zero_SS1” indicates the upper limit value of thestate value of the safety driver 300. The safety parameter “−N_Zero_SS1”indicates the lower limit value of the state value of the safety driver300. The user can easily determine whether or not the state value of thesafety driver 300 falls within the range of the upper limit value andthe lower limit value through the display of the upper limit value andthe lower limit value.

Typically, the support device 500 displays the upper limit value“N_Zero_SS1” and the lower limit value “−N_Zero_SS1” with the upperlimit value “N_Zero_SS1” and the lower limit value “−N_Zero_SS1”perpendicularly intersecting the vertical axis of the graph. In thismanner, the user can further easily determine whether or not the statevalue of the safety driver 300 falls within the range of the upper limitvalue “N_Zero_SS1” and the lower limit value “−N_Zero_SS1”. Note thatthe display form of the upper limit value “N_Zero_SS1” and the lowerlimit value “−N_Zero_SS1” is not limited to the example in FIG. 19. Forexample, the upper limit value “N_Zero_SS1” and the lower limit value“−N_Zero_SS1” may simply be displayed as numerical values.

Also, the support device 500 displays vertical axes AX1 to AX4 with thevertical axes AX1 to AX4 superimposed on the tracing result DT. Thevertical axis AX1 represents a timing at which the aforementionedtrigger condition set in the setting region 531E on the data tracingscreen 530 is satisfied. The timing is identical to the timing at whichthe command for executing the safety function “SS1” is issued. Thevertical axis AX1 is displayed such that the vertical axis AX1perpendicularly intersects the time axis.

The vertical axis AX2 represents a timing at which the state value ofthe safety driver 300 becomes equal to the upper limit value“N_Zero_SS1”. The vertical axis AX2 is displayed such that the verticalaxis AX2 perpendicularly intersects the time axis.

The vertical axis AX3 corresponds to a timing after the stop holdingperiod indicated by the safety parameter “T_L_SS1” elapses from thetiming indicated by the vertical axis AX2. The vertical axis AX3 isdisplayed such that the vertical axis AX3 perpendicularly intersects thetime axis.

The vertical axis AX4 corresponds to a timing after the stop holdingperiod indicated by the safety parameter “T_SS1” elapses from the timingindicated by the vertical axis AX1. The vertical axis AX4 is displayedsuch that the vertical axis AX4 perpendicularly intersects the timeaxis.

Typically, the tracing result DT and the safety parameters SP aredisplayed with matched units. More specifically, the support device 500holds in advance a unit conversion table 5122 (see FIG. 6) for unifyingthe unit of the state value indicated by the tracing result DT and theunit indicated by the safety parameters SP. The support device 500matches the unit of the state value indicated by the tracing result DTand the unit indicated by the safety parameters SP on the basis of theunit conversion table 5122. The user can easily compare the state valueindicated by the tracing result DT with the safety parameters SP throughthe matched units.

Note that the unit conversion is not necessarily executed by the supportdevice 500 and may be executed by the standard controller 100 or thesafety driver 300. In an aspect, the unit conversion table 5122 isstored in the standard controller 100. In this case, the standardcontroller 100 converts the unit of the tracing result DT to match theunit designated in Step S26 on the basis of the unit conversion table5122 and transmits the tracing result DT after the unit conversion tothe support device 500 in Step S62. In another aspect, the unitconversion table 5122 is stored in the safety driver 300. In this case,the safety driver 300 converts the unit of the safety parameters SP tomatch the unit designated in Step S65 on the basis of the unitconversion table 5122 and transmits the safety parameters SP after theunit conversion to the support device 500 in Step S66.

H. Modification Examples

Referring to FIG. 20 to FIG. 22, modification examples of the controlsystem 1 illustrated in FIG. 1 will be described.

FIG. 20 is a diagram illustrating a control system 1A according to afirst modification example. In the control system 1 illustrated in FIG.1, the standard controller 100 and the safety controller 200 areconnected via the field network 2. On the other hand, in the controlsystem 1A according to the first modification example, the standardcontroller 100 and the safety controller 200 are connected via aninternal bus. Since the other points of the control system 1A are thesame as those in the control system 1, description thereof will not berepeated.

FIG. 21 is a diagram illustrating a control system 1B according to asecond modification example. In the control system 1 illustrated in FIG.1, the storage regions 104A and 114A for storing the tracing target datagroup and the data tracing module 154 are provided inside the standardcontroller 100. On the other hand, in the control system 1B according tothe second modification example, the storage regions 104A and 114A andthe data tracing module 154 are provided in a dedicated tracing unit180. The tracing unit 180 is connected to the standard controller 100,the safety controller 200, and the safety I/O 230 via an internal bus.Since the other points of the control system 1B are the same as those inthe control system 1, description thereof will not be repeated.

FIG. 22 is a diagram illustrating a control system 1C according to athird modification example. In the control system 1 illustrated in FIG.1, the support device 500 is connected to the standard controller 100via the network 3. On the other hand, in the control system 1C accordingto the third modification example, the support device 500 is connecteddirectly to the tracing unit 180 via a network 3A. Since the otherpoints of the control system 1C are the same as those in the controlsystem 1, description thereof will not be repeated.

I. Appendix

As described above, the embodiment includes the following disclosures.

[Configuration 1]

A control system (1) including: a first controller (100); and a drivedevice (300) that drives a motor (400) in accordance with a firstcommand from the first controller (100), in which the drive device (300)has a plurality of safety functions with respect to the motor (400), thecontrol system (1) further includes: a second controller (200) thattransmits a second command in accordance with a type of a safetyfunction to be executed to the drive device (300); a data tracing module(154) for tracing a state value indicating an operation state of themotor (400) that changes in accordance with the first command; and asupport device (500) for receiving setting of a collection target datagroup in the control system (1), the collection target data groupincludes the state value indicating the operation state of the motor(400), the support device (500) includes a storage (510) for storingcollection candidate information that associates data groups ofcollection candidates in the control system (1) with types of theplurality of safety functions, a function receiving section (543) forreceiving selection of one safety function from among the plurality ofsafety functions, and an output section (508) for outputting, as thecollection target data group, a data group of collection candidatesassociated with the one safety function from among a plurality of datagroups defined in the collection candidate information.

[Configuration 2]

The control system according to Configuration 1, in which each of thedata groups associated with the types of the plurality of safetyfunctions in the collection candidate information includes safetyparameters to be referred to when the associated safety functions areexecuted.

[Configuration 3]

The control system according to Configuration 2, in which the supportdevice (500) acquires the safety parameters included in the collectiontarget data group from the drive device (300), and acquires a result oftracing the state value included in the collection target data groupfrom the data tracing module (154).

[Configuration 4]

The control system according to Configuration 2 or 3, in which thesafety parameters include a lower limit value of the state value and anupper limit value of the state value.

[Configuration 5]

The control system according to any one of Configurations 2 to 4, inwhich the safety parameters include a stop holding time starting fromwhen the drive device (300) receives the second command until driving ofthe motor (400) is stopped.

[Configuration 6]

The control system according to any one of Configurations 1 to 5, inwhich the control system (1) includes a plurality of the drive devices(300), the plurality of drive devices (300) drive mutually differentmotors (400), the support device (500) further includes a motorreceiving section for receiving selection of one motor (400) from amongthe plurality of motors (400), and the collection target data groupoutput by the output section (508) is determined on the basis of acombination of the one safety function and the one motor (400).

[Configuration 7]

The control system according to any one of Configurations 1 to 6, inwhich tracing conditions for the state value employed by the datatracing module are respectively associated with the plurality of safetyfunctions in advance, and the output section (508) further outputs thetracing condition associated with the one safety function from among theplurality of tracing conditions.

[Configuration 8]

A support device (500) connected to a control system (1), the controlsystem (1) including a first controller (100) and a drive device (300)that drives a motor (400) in accordance with a first command from thefirst controller (100), the drive device (300) having a plurality ofsafety functions with respect to the motor (400), the control system (1)further including a second controller (200) that transmits a secondcommand in accordance with a type of a safety function to be executed tothe drive device (300), and a data tracing module (154) for tracing astate value indicating an operation state of the motor (400) thatchanges in accordance with the first command, the support device (500)including: a data receiving section that receives setting of acollection target data group in the control system (1), the collectiontarget data group including the state value; a storage (510) for storingcollection candidate information that associates data groups ofcollection candidates in the control system (1) with types of theplurality of safety functions; a function receiving section (543) forreceiving selection of one safety function from among the plurality ofsafety functions; and an output section (508) for outputting a datagroup of collection candidates associated with the one safety functionfrom among the plurality of data groups defined in the collectioncandidate information as the collection target data group.

[Configuration 9]

A support program that is executed by a computer connected to a controlsystem (1), the control system (1) including a first controller (100)and a drive device (300) that drives a motor (400) in accordance with afirst command from the first controller (100), the drive device (300)having a plurality of safety functions with respect to the motor (400),the control system (1) further including a second controller (200) thattransmits a second command in accordance with a type of a safetyfunction to be executed to the drive device (300) and a data tracingmodule (154) for tracing a state value indicating an operation state ofthe motor (400) that changes in accordance with the first command, thesupport program causing the computer to execute the steps of: receivingsetting of a collection target data group in the control system (1), thecollection target data group including the state value; (S10) acquiringcollection candidate information that associates data groups ofcollection candidates in the control system (1) with types of theplurality of safety functions; (S10) receiving selection of one safetyfunction from among the plurality of safety functions; and (S10)outputting a data group of collection candidates associated with the onesafety function from among the plurality of data groups defined in thecollection candidate information as the collection target data group.

The embodiment disclosed hitherto is just an illustrative example in anysense and has to be considered as not having been described forlimitation. The scope of the present invention is indicated by claimsrather than the above description and is intended to include allmodifications within meanings and the scope equivalent to the claims.

REFERENCE SIGNS LIST

-   -   1, 1A, 1B, 1C Control system    -   2 Field network    -   3, 3A Network    -   4 Logical connection    -   100 Standard controller    -   102, 202, 312, 314, 502 Processor    -   104, 204, 316, 504 Main memory    -   104A, 114A storage region    -   106 Upper network controller    -   108, 208, 302 Field network controller    -   110, 210, 320, 510 Storage    -   112 Memory card interface    -   114 Memory card    -   116 Local bus controller    -   118, 218, 518 Processor bus    -   120, 220, 520 USB controller    -   150 Standard control    -   152 Control module    -   154 Data tracing module    -   170, 270, 370 Process data communication layer    -   172, 272 Management module    -   174, 274, 374 Process data    -   180 Tracing unit    -   200 Safety controller    -   216 Safety local bus controller    -   230 Safety IO unit    -   240 Safety device    -   250 Safety function    -   276, 376 Logical connection layer    -   278 Safety function state management engine    -   300 Safety driver    -   310 Control unit    -   311 Control device    -   330 Drive circuit    -   332 Feedback reception circuit    -   350 Servo control    -   352 Servo control execution engine    -   360 Motion safety function    -   362 Motion safety function execution engine    -   378 Motion safety function state management engine    -   390 Parameter set    -   400 Servo motor    -   402 Three-phase AC motor    -   404 Encoder    -   500 Support device    -   506 Input section    -   508 Output section    -   512 Optical drive    -   514 Recording medium    -   530 Data tracing screen    -   531, 531A, 531B, 531C, 531D, 531E, 533, 542, 543 Setting region    -   533A Data list    -   535, 545 Display region    -   540 Bulk setting screen    -   544 Check box    -   550 Determination module    -   600 Communication frame    -   610, 611, 612, 613, 614, 615, 620, 621, 622, 623, 624, 6121,        6122, 6131, 6132, 6141,    -   6142, 6151, 6152 Data region    -   630 Safety communication frame    -   1102, 2102 System program    -   1104 Standard control program    -   1106, 2106, 3206 Setting information    -   1108 Tracing condition    -   2104 Safety program    -   3203 Servo control program    -   3204 Motion safety program    -   5104 Support program    -   5106 Project data    -   5108 Standard control source program    -   5110 Standard controller setting information    -   5112 Safety source program    -   5114 Safety controller setting information    -   5116 Safety driver setting information    -   5118 Collection candidate information    -   5120 Axis information    -   5121 Collection target data group    -   5122 Unit conversion table

1. A control system comprising: a first controller; and a drive devicethat drives a motor in accordance with a first command from the firstcontroller, wherein the drive device has a plurality of safety functionswith respect to the motor, the control system further comprising: asecond controller that transmits a second command in accordance with atype of a safety function to be executed to the drive device; a datatracing module for tracing a state value indicating an operation stateof the motor that changes in accordance with the first command; and asupport device for receiving setting of a collection target data groupin the control system, wherein the collection target data groupcomprises the state value indicating the operation state of the motor,the support device comprising: a storage for storing collectioncandidate information that associates data groups of collectioncandidates in the control system with types of the plurality of safetyfunctions; a function receiving section for receiving selection of onesafety function from among the plurality of safety functions; and anoutput section for outputting, as the collection target data group, adata group of collection candidates associated with the one safetyfunction from among a plurality of data groups defined in the collectioncandidate information.
 2. The control system according to claim 1,wherein each of the data groups associated with the types of theplurality of safety functions in the collection candidate informationcomprises safety parameters to be referred to when the associated safetyfunctions are executed.
 3. The control system according to claim 2,wherein the support device acquires the safety parameters included inthe collection target data group from the drive device, and acquires aresult of tracing the state value included in the collection target datagroup from the data tracing module.
 4. The control system according toclaim 2, wherein the safety parameters comprise a lower limit value ofthe state value and an upper limit value of the state value.
 5. Thecontrol system according to claim 2, wherein the safety parameterscomprise a stop holding time starting from when the drive devicereceives the second command until driving of the motor is stopped. 6.The control system according to claim 1, wherein the control systemcomprises a plurality of the drive devices, the plurality of drivedevices drive mutually different motors, the support device furthercomprises a motor receiving section for receiving selection of one motorfrom among the plurality of motors, and the collection target data groupoutput by the output section is determined on the basis of a combinationof the one safety function and the one motor.
 7. The control systemaccording to claim 1, wherein tracing conditions for the state valueemployed by the data tracing module are respectively associated with theplurality of safety functions in advance, and the output section furtheroutputs the tracing condition associated with the one safety functionfrom among the plurality of tracing conditions.
 8. A support deviceconnected to a control system, the control system comprising: a firstcontroller; and a drive device that drives a motor in accordance with afirst command from the first controller, wherein the drive device has aplurality of safety functions with respect to the motor, the controlsystem further comprising: a second controller that transmits a secondcommand in accordance with a type of a safety function to be executed tothe drive device; and a data tracing module for tracing a state valueindicating an operation state of the motor that changes in accordancewith the first command, the support device comprising: a data receivingsection that receives setting of a collection target data group in thecontrol system, wherein the collection target data group comprises thestate value; a storage for storing collection candidate information thatassociates data groups of collection candidates in the control systemwith types of the plurality of safety functions; a function receivingsection for receiving selection of one safety function from among theplurality of safety functions; and an output section for outputting, asthe collection target data group, a data group of collection candidatesassociated with the one safety function from among a plurality of datagroups defined in the collection candidate information.
 9. Anon-transitory computer readable storage medium, storing a supportprogram that is executed by a computer connected to a control system,the control system comprising: a first controller; and a drive devicethat drives a motor in accordance with a first command from the firstcontroller, wherein the drive device has a plurality of safety functionswith respect to the motor, the control system further comprising: asecond controller that transmits a second command in accordance with atype of a safety function to be executed to the drive device; and a datatracing module for tracing a state value indicating an operation stateof the motor that changes in accordance with the first command, thesupport program causing the computer to execute the steps of: receivingsetting of a collection target data group in the control system, thecollection target data group comprising the state value; acquiringcollection candidate information that associates data groups ofcollection candidates in the control system with types of the pluralityof safety functions; receiving selection of one safety function fromamong the plurality of safety functions; and outputting a data group ofcollection candidates associated with the one safety function from amonga plurality of data groups defined in the collection candidateinformation as the collection target data group.